\documentclass[]{article}

%%%%%%%%%%%%%%%%%%%
% Packages/Macros %
%%%%%%%%%%%%%%%%%%%
\usepackage{amssymb,latexsym,amsmath}     % Standard packages
\usepackage[utf8]{inputenc}

%%%%%%%%%%%
% Margins %
%%%%%%%%%%%
\addtolength{\textwidth}{1.0in}
\addtolength{\textheight}{1.00in}
\addtolength{\evensidemargin}{-0.75in}
\addtolength{\oddsidemargin}{-0.75in}
\addtolength{\topmargin}{-.50in}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Theorem/Proof Environments %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheorem{theorem}{Theorem}
\newenvironment{proof}{\noindent{\bf Proof:}}{$\hfill \Box$ \vspace{10pt}}  


%%%%%%%%%%%%
% Document %
%%%%%%%%%%%%
\begin{document}

\title{Ce que je vais dire dans la soutenance}
\author{TRAN Xuan Huy}
\maketitle

\section{•}
Bonjour ... mon sujet est Étude de l'extraction de l'axe médian.
\section{•}
Mon présentation aujourd'hui se compose 4 parties:
\begin{itemize}
\item Tout d'abord, on va voir quelques définitions de base pour mieux comprendre le sujet.
\item 2è, c'est le calcul de l'axe médian. Ce méthode est proposé par mon tuteur, monsieur Eric Remy. Il a programmé sous la forme C, je récrire sous la forme c++
\item 3è partie est mon contribution dans la recherche. Relation entre l'axe médian et le bord d'une forme.
\item Enfin, c'est l'application et conclusion.
\end{itemize}

\section{•}
\section{•}
\section{•}
défini positive

\section{•}
\begin{itemize}
\item Cependant, ces distances discrètes présentent des problèmes. Par exemple, les distances $d_4$ et $d_8$ ne sont pas invariantes par rotation. Pour obtenir l'invariance par rotation, il faut utiliser la distance euclidienne $d_E$, mais ce n'est pas une distance discrète car elle donne des nombres réels et non entiers.

\item Donc, il faut appliquer le calcul sur une autre fonction discrète: le carré $d_E^2$ de la distance euclidienne. Le carré de la distance euclidienne n'est pas une distance mais est bien discret.
\end{itemize}

\section{•}
\begin{itemize}
\item La transformation de distance, notée \textsl{DT}, consiste à étiqueter chaque point d'une forme à la distance du point le plus proche dans le complémentaire de la forme. Donc, la valeur d'un point \textsl{p} de la forme \textsl{F} est définie par...

\item Pour le calcul effectif de $d_E^2$, nous nous basons sur la transformation de distance proposée par Saito et Toriwaki.
\end{itemize}

\section{•}
\begin{itemize}
\item Un masque  $\mathcal{M}$ est un ensemble central-symétrique de $m$ vecteur non-nul $\overrightarrow{v} \in \mathbb{E}^*$. C'est-à-dire, pour tout vecteur $\overrightarrow{v_i}$, il existe un vecteur $\overrightarrow{v_j}$ que $\overrightarrow{v_j}=-\overrightarrow{v_i}$.

\item Un masque permet d'exprimer les points $p+\overrightarrow{v_i}$ à consulter autour d'un point $p$ donné qui variera durant un algorithme.

\item Générateur du masque C'est le sous-ensemble du masque complet $\mathcal{M}$ qui est inclus dans la zone $\frac{1}{8}\mathbb{Z}^2$ (ou $\frac{1}{48}\mathbb{Z}^3$); il est noté $\mathcal{M}^g$. Ce sous-ensemble permet de reconstruire le masque d'origine exactement par symétrie.
\end{itemize}

\section{•}
\begin{itemize}
\item Cette notion classique de topologie va nous être d'une importance capitale dans l'étape du calcul de l'axe médian. On a la définition de la boule direct et de la boule inverse de centre p et rayon r.
\item On a aussi la lemme de relation entre ces deux boule. En effet, sur l'image, vous voyez que la boule directe B(103) et la boule inverse $B^{-1}\left(104\right)$ comportent les même points.
\end{itemize}

\section{•}
\section{•}
\begin{itemize}
  \item Un point $p$ dans une forme est un point de l'axe médian s'il n'existe aucun point $q$ tel que la boule $B_d^{-1}(q,DT[q])$ recouvre entièrement la boule $B_d^{-1}(p,DT[p])$. Dans ce cas, la présence de $q$ \textsl{interdit} à $p$ de faire partie de l'axe médian.
  \item On connaît pour toute valeur de rayon $DT[p]$ la valeur minimale de rayon $DT[q]$, qui interdise $p$ dans la direction $\overrightarrow{v}=\overrightarrow{pq}$. Cette valeur minimale pour $p$ et $\overrightarrow{v}$ est stockée dans $Lut[\overrightarrow{v}][DT[p]]$. À cause de la symétrie, il est suffisant de ne stocker que la valeur pour les vecteurs dans $\mathcal{M}_{Lut}^g$ donc on peut trouver la valeur minimale dans $Lut[\overrightarrow{v}^g][DT[p]]$.
\end{itemize}

\section{•}
\begin{itemize}
\item Alors, le problème ici est comment calculer la valeur $Lut[\overrightarrow{v}^g][DT[p]]$.
\item Le calcul de la valeur $Lut[\overrightarrow{v}^g][r]$ consiste à trouver le plus petit rayon $R$ de la boule $B_d^{-1}(p+\overrightarrow{v},R)$ qui recouvre entièrement la boule $B_d^{-1}(p,r)$. On peut trouver $R$, comme illustré sur la figure, en faisant décroître la valeur du rayon $R_+$ de la boule $B_d^{-1}(q,R_+)$, en s'assurant que cette boule recouvre la boule $B_d^{-1}(p,r)$.
  \item Cependant, pour chaque rayon de $R_+$, on doit faire une coûteuse transformation de distance inverse. Pour éviter cela, on utilise une autre image de distance notée $CT^g$, résultant d'une transformation de distance à l'origine par l'algorithme dans la figure. Dans cette image, chaque point est étiqueté à sa distance à l'origine. Le recouvrement de la boule $B^{-1}(p,r)$ par la boule $B^{-1}(q,R_+)$ est testé en parcourant $CT^g$.
\end{itemize}

\section{•}
\begin{itemize}
\item On vois ici c'est l'algorithme pour calculer le voisinage de test proposé par mon tuteur.
\item Supposons que le voisinage $\mathcal{M}_{Lut}$ soit suffisant pour extraire l'axe médian de n'importe quelle image $DT$ dont les valeurs n'excèdent pas $R_{Connu}$. Cela signifie que $\mathcal{M}_{Lut}^g$ permet d'extraire l'axe médian d'une boule $B(O,R)$ dont la valeur de rayon est $R\leqslant R_{Connu}$. On obtient le seul point du centre de la boule.
\item On fait une boucle jusqu'à $R=R_{Cible}$ ou jusqu'à rencontrer un point différent du centre $O$ est détecté dans l'axe médian de la boule.
\begin{itemize}
\item Si on atteint $R=R_{Cible}$, alors nous savons que le voisinage $\mathcal{M}_{Lut}$ permet d'extraire l'axe médian de n'importe quelle image $DT$ dont les valeurs sont inférieures ou égales à $R_{Cible}$.
\item Si un autre point $p$ que $O$ est détecté, alors $\mathcal{M}_{Lut}$ ne suffit pas pour l'extraction de l'axe médian. Dans ce cas, nous utilisons le lemme suivant
\item[Lemme 2] Rajouter la pondération $(p,CT^g[p])$ dans $\mathcal{M}_{Lut}^g$ est nécessaire et suffisant pour enlever $p$ de l'axe médian de la boule $B(O,R)$.
\end{itemize}
\end{itemize}

\section{•}
\begin{itemize}
\item Un exemple 2D d'utilisation de ces tables est: un point de valeur 1 sur la $DT$ n'est pas un point de l'axe médian, s'il a au moins un $(1,0)-voisin$ supérieur ou égal à 2, ou un $(1,1)-voisin$ supérieur ou égal à 3, ou un $(2,1)-voisin$ supérieur ou égal à 6.
\item Nous sauvegardons ce rayon pour limiter le nombre de vecteurs choisis dans $\mathcal{M}_{Lut}^g$ lors de l'extraction de l'axe médian.
\end{itemize}

\section{•}
L'extraction de l'axe médian d'une image binaire se divise en plusieurs étapes:
\begin{itemize}
\item Calculer la Squared Euclidean Distance Transform (SEDT), puis trouver $R_{max}$ dans la DT calculée.
\item Appliquer la fonction CompLutMask en utilisant la valeur $R_{max}$ pour $R_{Target}$, on peut éviter cette étape si le masque $\mathcal{M}_{Lut}^g$ stocké est suffisant.
\item Utiliser enfin le sous-ensemble $\mathcal{M}_{Lut}^{R_{max}}$ pour l'extraction de l'axe médian: \[\mathcal{M}_{Lut}^{R_{max}}=\left\lbrace  (\overrightarrow{v};R) \in \mathcal{M}_{Lut}:R<R_{max}\right\rbrace\]
  \end{itemize}
  
\section{•}
\begin{itemize}
\item On passe à 3è partie, Relation entre l'axe médian et le bord d'une forme.
\item L'axe médian n'est pas stable sous de petites perturbations de forme: modifier légèrement une forme peut entraîner de sensibles différences entre les axes médians. Il est donc nécessaire d'ajouter une étape de filtrage au calcul de l'axe médian pour la description simplifiée des objets binaires d'intérêt.
\item Des critères différents peuvent être utilisés pour supprimer des points parasites de l'axe médian ou des branches. La méthode la plus simple est de ne garder que les points qui sont des centres de boules maximales d'au moins un diamètre donné. Un critère plus complexe: on utilise des informations sur la boule dans la forme par rapport à toutes les autres boules en comptant le nombre de points de l'objet à l'intérieur d'une boule qui ne sont pas couverts par d'autres boules; le point de l'axe médian sera supprimé si la zone découverte de la boule correspondante est trop petite.
\item Nous proposons un algorithme qui permet de supprimer des points parasites de l'axe médian. Il se base sur l'algorithme de parcours en largeur. On vois dans l'image l'algorithme de parcours en largeur explore dans l'ordre les sommets A, B, C, E, D, F, G.
\end{itemize}

\section{•}
\begin{itemize}
\item Pour un point au bord, trouver des points de l'axe médian qui interdisent à ce point de faire partie de l'axe médian.
\item Et en direction inverse, Pour un point de l'axe médian, trouver des points du bord qui sont interdits par ce point.
\item Pour applique à l'algorithme de parcours en largeur, Le point au bord qu'on va tester est le nœud de départ, le point de l'axe médian est le nœud de destination.
\end{itemize}

\section{•}
Il y a deux variables principales de l'algorithme...
\section{•}
\begin{itemize}
\item On vois le base de l'algorithme de parcours en largeur: le file, le boucle ...
\item Si p est point de l'axe médian, on sauvegarde le chemin de orig à point p au l'image result. Si non, on ajoute tous les points q interdisent p faire partie de l'axe médian au file.
\end{itemize}

\section{•}
\begin{itemize}
\item Ensuite, c'est un petit application: L'importance d'un vecteur du masque... 
\item On utilise le résultat du l'image submasque que j'ai présenté
\end{itemize}

\section{•}
\begin{itemize}
\item L'importance des vecteurs de $\mathcal{M}_{Lut}$ dans l'extraction de l'axe médian pour deux images différentes (indice dans $\mathcal{M}_{Lut}$ d'origine, nombre d'utilisations, coordonnée x, coordonnée y, poids du vecteur, indice du vecteur correspondant de $\mathcal{M}_{Lut}^g$).
\item Selon deux résultats dans l'image, on peut séparer les vecteurs de $\mathcal{M}_{Lut}$ en trois groupes avec la diminution d'importance: $\lbrace 5,1,6\rbrace, \lbrace 2,7,3\rbrace, \lbrace 0,4\rbrace$. Ce sont les valeurs de la première colonne dans l'image (indice dans $\mathcal{M}_{Lut}$ d'origine). Si on applique le calcul sur un ensemble d'image assez grand, on peut ordonner les vecteurs plus précisément.
\item Nous testons avec un objet en 2D. L'image est un carré de côté 256 (soit 65536 pixels), l'objet se compose de 16096 pixels. Nous obtenons un temps de calcul de l'axe médian sans optimisation de 0.19 secondes. Ensuite, nous sauvegardons les vecteurs dans $\mathcal{M}_{Lut}$ et nous les ordonnons selon leurs importances. Si nous appliquons le voisinage de test $\mathcal{M}_{Lut}$ ordonné à la même image, le temps de calcul de l'axe médian est 0.09 secondes. 

\item De même façon, nous testons avec un objet en 3D. L'image est un cube de côté 150 (soit 3375000 voxels), l'objet se compose 233412 voxels. Le temps de calcul de l'axe médian se réduit de 121 secondes à 29,39 secondes.
\end{itemize}

\section{•}
Nous donnons à la figure un premier exemple: l'objet (a) est en 2D. L'image est un carré de côté 256. Grâce au carré de la distance euclidienne $d_E^2$, on calcule la carte de distance (b) et l'axe médian (c) de l'objet.

\section{•}
Dans (a) et (b), l'utilisateur choisit un point du bord, le résultat est l'ensemble de points de l'axe médian qui interdisent à ce point de faire partie de l'axe médian. Dans (c) et (d), on choisit un point de l'axe médian, le résultat est l'ensemble des points du bord qui sont interdits par ce point de faire partie de l'axe médian.

\section{•}
\begin{itemize}
\item La figure représente des chemins entre le point du bord (236,109) et des points de l'axe médian qui interdisent à ce point de faire partie de l'axe médian.
\item Chaque ligne est un chemin. Pour un chemin, le début est le point au bord $(236,109)$, la fin est un point de l'axe médian.
\end{itemize}

\section{•}
\section{•}
\section{•}

\section{•}
  \begin{itemize}
  \item
    Calculer la transformée de distance euclidienne et l'axe médian d'une forme. Récrire sous la forme c++.
  \item
    Proposer une méthode pour déterminer la liaison entre les points de l'axe médian et les points du bord d'une forme. Ce calcul permet de déterminer l'importance d'un point de l'axe médian et de résoudre le problème de simplification de l'axe médian.
  \item
    Une perspective plus importante, les travaux de la recherche que nous avons proposée sont préliminaires et pourraient déboucher plus tard sur des indices de courbure qui n'ont pas été étudiés faute de temps.
  \end{itemize}
\end{document}